﻿Imports Testeitor.Entidades
Imports Testeitor.DAO

Public Class DialogProyecto

    Private _operacion As Util.Operacion
    Private _proyecto As ProyectoEntity

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click

        If validarDatos() Then
            Dim dao As New ProyectoDAO
            Select Case _operacion
                Case Util.Operacion.GUARDAR
                    _proyecto = New ProyectoEntity
                    cargarEntidad()
                    dao.Insertar(_proyecto)
                    Util.mensaje("El Proyecto se ha guardado correctamente!", "Proyecto Guardado")
                Case Util.Operacion.MODIFICAR
                    cargarEntidad()
                    dao.Actualizar(_proyecto)
                    Util.mensaje("El Proyecto se ha modificado correctamente!", "Proyecto Guardado")
                Case Util.Operacion.ELIMINAR
                    dao.Eliminar(_proyecto.Id)
                    Util.mensaje("El Proyecto se ha eliminado correctamente!", "Proyecto Guardado")
            End Select

            Me.DialogResult = System.Windows.Forms.DialogResult.OK
            Me.Close()
        Else
            MessageBox.Show("El formato de los Datos ingresados es incorrecto", "Datos Incorrectos", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If

    End Sub

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub

    Private Function validarDatos() As Boolean
        Dim valor As Boolean
        valor = True

        If txtNombre.Text.Trim.Equals(String.Empty) Or dtpFechaInicio.Text.Trim.Equals(String.Empty) Then
            valor = False
        End If

        Return valor
    End Function

    Public Sub cargarDatos(ByVal entidad As EntityBase)
        _proyecto = DirectCast(entidad, ProyectoEntity)

        txtNombre.Text = _proyecto.Nombre
        dtpFechaInicio.Text = _proyecto.FechaInicio.ToString()
        dtpFechaFin.Text = _proyecto.FechaFin.ToString()
        txtDescripcion.Text = _proyecto.Descripcion

        If _operacion.Equals(Util.Operacion.ELIMINAR) Then
            habilitarControles(False)
        End If
    End Sub

    Private Sub habilitarControles(ByVal valor As Boolean)
        txtNombre.Enabled = valor
        dtpFechaInicio.Enabled = valor
        dtpFechaFin.Enabled = valor
        txtDescripcion.Enabled = valor
    End Sub

    Private Sub cargarEntidad()
        _proyecto.Nombre = txtNombre.Text.Trim()
        _proyecto.FechaInicio = Convert.ToDateTime(dtpFechaInicio.Text)
        _proyecto.FechaFin = Convert.ToDateTime(dtpFechaFin.Text)
        _proyecto.Descripcion = txtDescripcion.Text
    End Sub

    Public Sub New(ByVal oper As Util.Operacion)
        InitializeComponent()
        Me._operacion = oper
    End Sub
End Class